Task: create SIMPLE model
The Structured Intuitive Model of Product Line Economics (SIMPLE) provides an easy way for the manager to model the expected costs and benefits of a specific approach to realizing a product line.
Disciplines: Organizational PlanningScopingTechnical Planning
Purpose

The SIMPLE provides a starting point for modeling

Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
    • None
    Outputs
      Main Description

      Managers need to be able to model the expected costs and benefits of the product line approach to supplement their arguments for using this approach. The Structure, Intuitive Model of Product Line Economics (SIMPLE) uses an expression like this:

      A basic SIMPLE model uses 4 cost functions:

      1. Corg() is a function that, given the relevant parameters, returns how much it costs an
      organization to adopt the product line approach for its products. Such costs can include
      reorganization, process improvement, training, and whatever other organizational
      remedies are necessary.
      2. Ccab() is a function that, given the relevant parameters, returns how much it costs to
      develop a core asset base suited to satisfy a particular scope. Ccab takes into account the
      costs of performing a commonality/variability analysis; defining the product line’s scope
      [Clements 04]; designing and then evaluating a generic (as opposed to one-off) software
      architecture; and developing the software so designed. Ccab also includes building the
      production plan, establishing the development environment, and producing a testing
      architecture and other artifacts that are reusable across the family. Ccab may be invoked
      to tell us the cost of developing a core asset base where none currently exists or the cost
      of deriving a desired core asset base from one or more bases already in place. Note that
      the core asset base can (and should) also include non-software assets such as plans,
      schedules, budgets, the scope definition, and various kinds of documentation. It also
      includes the artifacts that tell you how to produce products from core assets; an example
      of such an artifact is a production plan.
      3. Cunique() is a function that, given the relevant parameters, returns how much it costs to
      develop the unique parts (both software and non-software) of a product that are not
      based on assets in the core asset base. The result might be a complete product (i.e., one
      that is not a member of a product line) or the unique part of a product whose remainder
      is built atop the core asset base of a product line.
      4. Creuse() is a function that, given the relevant parameters, returns how much it costs to
      build a product reusing core assets from a core asset base. Creuse includes the cost of
      locating a core asset, checking it out of the repository, tailoring it for use in the intended
      application, and performing the extra tests associated with reusing core assets.

      SIMPLE also includes a Benefits function that returns the value of the benefits realized by using the product line approach.


      Steps
      Define the problem
       
      Write down the decision that is facing the product line organization.  Express it as a scenario that chooses between two or more alternatives
      Determine cost of each alternative solution
       
      2.List the monetary costs of each alternative using SIMPLE’s cost functions.
      Corg() returns the cost to an organization of adopting the product line approach for its products.  Such costs can include reorganization, process improvement, training, and whatever other organizational remedies are necessary. 
      Ccab() returns the development cost to develop a core asset base suited to satisfy a particular scope.  Ccab takes into account the cost of performing a commonality/variability analysis, defining the product line’s scope the cost of designing and then evaluating a generic (as opposed to one-off) software architecture, and the cost of developing the software so designed. Ccab may be invoked to tell us the cost of developing a core asset base where none currently exists, or it may be invoked to tell us the cost of deriving a desired core asset base from one or more already in place.
      Cunique() returns the software development cost for the part of a product not based on a product line’s core asset base – that is, software unique to a particular product.  
      Creuse() returns the development cost to reuse core assets in a core asset base. Creuse includes the cost of locating a core asset, checking it out of the repository, tailoring it for use in the intended application, and performing the extra integration tests associated with reusing core assets.
      Cprod() returns the development costs associated with building a product in a stand-alone manner, rather than as a member of a software product line.
      List monetary benefits for each alternative
       
      3.List the monetary benefits of each alternative using SIMPLE’s benefit functions.
      Express each benefit in the form BBenefit()
      Construct a cost/benefit function

      Fill in the terms of the SIMPLE formula

      Evaluate the SIMPLE formula
      The SIMPLE formula is evaluated. This may be done using  a spreadsheet representation and a Monte Carlo simulation macro. The formula is evaluated repeatedly using a random jitter added to approximate the degree of uncertainty in the original estimate of the data value.
      Select the appropriate alternative
      The alternative forms the basic approach to production of the software product line. The decision is revisited periodically to ensure that the approach is still optimal.
      Key Considerations
      The cost and benefit functions can be arranged in numerous ways to model several different financial values such as cost/benefit analysis and ROI.
      More Information
      Guidelines